<?php
class ProvXSL{

	//Atributos de la clase
	var $txtNomArchXML;
	var $txtNomArchXSL;
	var $txtDtoXML;
	var $txtDtoXSL;
	var $txtDtoHTML;
	var $ProcesadorXSLT;
	
	//Constructores de la Clase
	function ProvXSL($ptxtNomArchXMl= "", $ptxtNomArchXSL= "", $ptxtDtoXML="", $ptxtDtoXSL=""){
		$this->ProcesadorXSLT = new XsltProcessor;
		$this->txtNomArchXML = $ptxtNomArchXML;
		$this->txtNomArchXSL = $ptxtNomArchXSL;
		$this->txtDtoXSL = new DomDocument;
		$this->txtDtoXML = new DomDocument;
	}
	
	//Funciones Para establecer Propiedades
	function estTxtNomArchXML($ptxtNomArchXML){
		$this->txtNomArchXML = $ptxtNomArchXML;
		$this->txtDtoXML->load($this->txtNomArchXML);
	}
	function estTxtNomArchXSL($ptxtNomArchXSL){
		$this->txtNomArchXSL = $ptxtNomArchXSL;
		$this->txtDtoXSL->load($this->txtNomArchXSL);
		//var_dump($this->txtDtoXSL->saveXML());
		$this->ProcesadorXSLT->importStylesheet($this->txtDtoXSL);
	}
	function estTxtDtoXML($ptxtDtoXML){
		$this->txtDtoXML->loadXML($ptxtDtoXML);
	}
	function estTxtDtoXSL($ptxtDtoXSL){
		$this->txtDtoXSL = $ptxtDtoXSL;
		$this->ProcesadorXSLT->importStylesheet($this->txtDtoXSL);
	}
	function estParamXSL($namespace, $id, $valor){
		$this->ProcesadorXSLT->setParameter($namespace, $id, $valor);
	}
	
	//Funciones para obtener Propiedades
	function obtTxtNomArchXML(){
		return $this->txtNomArchXML;
	}
	function obtTxtNomArchXSL(){
		return $this->txtNomArchXSL;
	}
	function obtTxtDtoXML(){
		return $this->txtDtoXML;
	}
	function obtTxtDtoXSL(){
		return $this->txtDtoXSL;
	}
	
	//Funciones de la Clase
	function GenerarHTML(){			
		if($this->txtDtoHTML = $this->ProcesadorXSLT->transformToXML($this->txtDtoXML)){
			return $this->txtDtoHTML;
		}
		else{
			return trigger_error('XSL transformation failed', E_USER_ERROR);
		}
	}
}
?>